home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / um / include / shared / net_user.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.5 KB  |  54 lines

  1. /*
  2.  * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
  3.  * Licensed under the GPL
  4.  */
  5.  
  6. #ifndef __UM_NET_USER_H__
  7. #define __UM_NET_USER_H__
  8.  
  9. #define ETH_ADDR_LEN (6)
  10. #define ETH_HEADER_ETHERTAP (16)
  11. #define ETH_HEADER_OTHER (14)
  12. #define ETH_MAX_PACKET (1500)
  13.  
  14. #define UML_NET_VERSION (4)
  15.  
  16. struct net_user_info {
  17.     int (*init)(void *, void *);
  18.     int (*open)(void *);
  19.     void (*close)(int, void *);
  20.     void (*remove)(void *);
  21.     void (*add_address)(unsigned char *, unsigned char *, void *);
  22.     void (*delete_address)(unsigned char *, unsigned char *, void *);
  23.     int max_packet;
  24.     int mtu;
  25. };
  26.  
  27. extern void ether_user_init(void *data, void *dev);
  28. extern void iter_addresses(void *d, void (*cb)(unsigned char *,
  29.                            unsigned char *, void *),
  30.                void *arg);
  31.  
  32. extern void *get_output_buffer(int *len_out);
  33. extern void free_output_buffer(void *buffer);
  34.  
  35. extern int tap_open_common(void *dev, char *gate_addr);
  36. extern void tap_check_ips(char *gate_addr, unsigned char *eth_addr);
  37.  
  38. extern void read_output(int fd, char *output_out, int len);
  39.  
  40. extern int net_read(int fd, void *buf, int len);
  41. extern int net_recvfrom(int fd, void *buf, int len);
  42. extern int net_write(int fd, void *buf, int len);
  43. extern int net_send(int fd, void *buf, int len);
  44. extern int net_sendto(int fd, void *buf, int len, void *to, int sock_len);
  45.  
  46. extern void open_addr(unsigned char *addr, unsigned char *netmask, void *arg);
  47. extern void close_addr(unsigned char *addr, unsigned char *netmask, void *arg);
  48.  
  49. extern char *split_if_spec(char *str, ...);
  50.  
  51. extern int dev_netmask(void *d, void *m);
  52.  
  53. #endif
  54.